package com.example.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * 风控指标实体类
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RiskIndicator {

    /**
     * 指标ID
     */
    private String id;
    
    /**
     * 用户ID
     */
    private String userId;
    
    /**
     * 指标类型
     */
    private String type;
    
    /**
     * 指标名称
     */
    private String name;
    
    /**
     * 指标值
     */
    private Double value;
    
    /**
     * 风险等级：LOW, MEDIUM, HIGH, CRITICAL
     */
    private RiskLevel riskLevel;
    
    /**
     * 指标计算时间
     */
    private LocalDateTime calculatedAt;
    
    /**
     * 指标有效期
     */
    private LocalDateTime validUntil;
    
    /**
     * 指标来源
     */
    private String source;
    
    /**
     * 指标描述
     */
    private String description;
    
    /**
     * 指标相关的额外属性
     */
    private Map<String, Object> attributes;
    
    /**
     * 风险等级枚举
     */
    public enum RiskLevel {
        LOW,
        MEDIUM,
        HIGH,
        CRITICAL
    }
}